Cours 16
Qu'est-ce que le serveur de fichiers ? đâ
Un serveur de fichiers est un dispositif ou un programme qui permet de stocker, organiser et partager des fichiers numĂ©riques sur un rĂ©seau. Il centralise les donnĂ©es afin que les utilisateurs ou d'autres machines puissent les consulter, les modifier ou mĂȘme ajouter d'autres fichiers depuis n'importe quel appareil connectĂ©.
Comment ça fonctionne ?â
-
Stockage centralisĂ© : PlutĂŽt que de stocker des fichiers sur chaque ordinateur de maniĂšre locale, les fichiers sont centralisĂ©s sur un serveur. Cela facilite la gestion et la sauvegarde des donnĂ©es. đŸ
-
AccĂšs rĂ©seau : Les utilisateurs accĂšdent aux fichiers via le rĂ©seau local. Ce qui implique forcĂ©mment que le rĂ©seau local doit ĂȘtre fonctionnel pour que l'accĂšs aux fichiers soit garanti.
Les diffĂ©rents protocoles de partageâ
Comme les serveurs de fichiers utilisent leur connexion rĂ©seau pour offrir un accĂšs aux fichiers, diffĂ©rents protocoles peuvent ĂȘtre utilisĂ©s dans le cadre de leur fonction.
FTP - File Transfer Protocolâ
Le protocole FTP a été créé en 1971 au Massachussets Institute of Technology. Sa derniÚre révision date de 1985. Son principal objectif était tout simplement de permettre le transfert de fichiers d'un ordinateur à un autre. Avec le temps, le protocole FTP a souvent été jumelé à des serveurs Web pour permettre la modification des fichiers du site web à distance.
Fonctionnementâ
Le protocole FTP utilise deux ports, soit les ports 20 & 21. Le port 21 est utiliser pour l'échange de commandes ou d'instructions entre les deux partis. Le port 20, quant à lui, est utilisé pour le transfert des données.
Le serveur FTP est offert en deux formats:
- Le serveur FTP en mode Actif
- Le serveur FTP en mode Passif
Peu importe le mode utilisé, seul le flux de données en sera affecté. Il n'y aura aucune différence au niveau du canal des commandes (Port 21).
Mode actifâ
-
Ătape 1: Le client se branche au port 21 du serveur Ă partir d'un port alĂ©atoire et communique le port qu'il utilisera pour l'Ă©change des donnĂ©es.
-
Ătape 2: Le serveur transmet alors un accusĂ© de rĂ©ception au port de commande du client.
-
Ătape 3: Le serveur FTP initie la connexion entre son canal de donnĂ©es et le port indiquĂ© par le client.
-
Ătape 4: : Le client envoie un accusĂ© de rĂ©ception
En mode actif, c'est le serveur FTP qui initie l'échange de données


Mode passifâ
-
Ătape 1: Le client se branche au port 21 du serveur Ă partir d'un port alĂ©atoire et demande au serveur d'ouvrir un port de communication pour l'Ă©change de donnĂ©es.
-
Ătape 2: Le serveur communique un accusĂ© de rĂ©ception au port de commande du client et lui transmet le numĂ©ro de port qu'il a ouvert pour l'Ă©change de donnĂ©es.
-
Ătape 3: Le client Ă©tablit une connexion entre son port de donnĂ©es et le port de donnĂ©es du serveur.
-
Ătape 4: Le serveur envoie un accusĂ© de rĂ©ception au client et l'Ă©change dĂ©marre.
En mode passif, c'est le client qui initie l'échange de données


Quel mode privilĂ©gier ?â
On aura tendance à privilégier le mode passif puisque la plupart des clients se trouvent derriÚre un NAT (souvent un routeur). Sans entrer dans le menu détail de ce qu'un NAT engendre comme modifications, ce-dernier nécessite souvent des configurations supplémentaires.
SĂ©curitĂ© du protocole FTPâ
Le protocole FTP original est aujourd'hui considéré comme non sécuritaire pour deux raisons majeures:
đ Les donnĂ©es transmises sont non chiffrĂ©es. Cela rend le protocole vulnĂ©rable aux interceptions et peut compromettre les confidentialitĂ© des informations.
đ L'authentification est Ă©galement effectuĂ©e en texte claire.
Avec le temps, un protocole FTP amélioré a vu le jour, le FTPS. Un second protocole un peu plus différent, le SFTP, peut également faire office de meilleure solution.
Caractéristiques | FTP | SFTP | FTPS |
---|---|---|---|
SĂ©curitĂ© | Aucune â | TrĂšs sĂ©curitaire â | SĂ©curisĂ© si bien configurĂ© â ïž |
Chiffrement | Aucun â | Chiffrement SSH â | SSL/TLS â |
Ports par défaut | 20 (Données) / 21 (Commandes) | 22 | 990 (Commandes) / 989 (Données) |
Authentification | Utilisateur / Mot de passe | Clés publiques / privées, Mot de passe | Certificats, utilisateur / mot de passe |
Mode(s) | Actif / Passif | Passif seulement | Actif / Passif |
IntĂ©grer avec SSH | Non â | Oui â | Non â |
Compatibilité | TrÚs répandue | Nécessite un serveur spécifique | Nécessite un serveur spécifique |
Firewall Friendly | Mode actif peut poser problĂšme | Plus convivial (Connexion unique) | Mode actif peut poser problĂšme |
SMB - Server Message Blockâ
Le protocole SMB est un autre protocole de partage de fichiers trÚs populaire. Il permet non seulement le partage de fichiers, mais il supporte également le partage d'imprimantes et d'autres ressources. Autre avantage intéressant, il est supporté autant sous Windows que sous Linux.
Notions de vocabulaireâ
DĂ©trompez-vous, nous ne sommes pas dans un cour de français đ. NĂ©anmoins, lorsque vient le temps d'aborder le protocole SMB, on entend toute sorte de chose dans le jargon de l'informatique. Pour ĂȘtre certain de bien se comprendre entre nous, il importe d'apporter quelques clarifications:
-
SMB est le protocole original (server message block). Comme mentionnĂ© prĂ©cĂ©demment, c'est un protocole pouvant ĂȘtre implĂ©mentĂ© sur diffĂ©rents systĂšmes d'exploitation pour partager des fichiers, des imprimantes et des ressources.
-
CIFS (Common Internet File System) se voulait une extension du protocole SMB historiquement. Ce protocole était une amélioration de SMB. Or, avec le temps, les gens se sont mis à confondre les deux. Aujourd'hui, les deux termes sont trÚs synonymes.
-
Samba, quant à lui, est une implémentation libre et open source du protocole SMB/CIFS. En d'autres mots, c'est un ensemble logiciel permettant l'interopérabilité du protocole SMB avec les ordinateurs sous Microsoft. Samba permet beaucoup plus que le simple partage de fichiers. Il peut agir à titre de contrÎleur de domaine Active Directory.
Versions et rĂ©trocompatibilitĂ© SMBâ
La négociation du protocole se fait automatiquement entre les machines:
Windows XP | Windows 7 | Windows 10 | Windows 11 | Ubuntu 16.04 | Ubuntu 18.04 | Ubuntu 20.04 | Ubuntu 22.04 | |
---|---|---|---|---|---|---|---|---|
Windows XP | SMB 1.0 | SMB 1.0 | SMB 1.0 (si activĂ©) | â (SMB1 dĂ©sactivĂ©) | SMB 1.0 | SMB 1.0 | SMB 1.0 | SMB 1.0 |
Windows 7 | SMB 1.0 | SMB 2.1 | SMB 2.1 | SMB 2.1 | SMB 1.0 | SMB 2.1 | SMB 2.1 | SMB 2.1 |
Windows 10 | SMB 1.0 (si activé) | SMB 2.1 | SMB 3.1.1 | SMB 3.1.1 | SMB 1.0 (si activé) | SMB 2.1 | SMB 3.0 | SMB 3.0 |
Windows 11 | â (SMB1 dĂ©sactivĂ©) | SMB 2.1 | SMB 3.1.1 | SMB 3.1.1 | â (SMB1 dĂ©sactivĂ©) | SMB 2.1 | SMB 3.0 | SMB 3.0 |
Ubuntu 16.04 | SMB 1.0 | SMB 1.0 | SMB 1.0 (si activĂ©) | â (SMB1 dĂ©sactivĂ©) | SMB 1.0 | SMB 1.0 | SMB 1.0 | SMB 1.0 |
Ubuntu 18.04 | SMB 1.0 | SMB 2.1 | SMB 2.1 | SMB 2.1 | SMB 1.0 | SMB 2.1 | SMB 2.1 | SMB 2.1 |
Ubuntu 20.04 | SMB 1.0 | SMB 2.1 | SMB 3.0 | SMB 3.0 | SMB 1.0 | SMB 2.1 | SMB 3.0 | SMB 3.0 |
Ubuntu 22.04 | SMB 1.0 | SMB 2.1 | SMB 3.0 | SMB 3.0 | SMB 1.0 | SMB 2.1 | SMB 3.0 | SMB 3.0 |
SMB v1 (Eternal Blue)â
La version 1 du protocole SMB a été au coeur de l'exploitation d'une faille de sécurité majeure chez Microsoft. L'exploitation de cette faille a été baptisé « Eternal Blue ». Son numéro de vulnérabilité officiel est le CVE-2017-0144
Depuis que cette faille de sĂ©curitĂ© a Ă©tĂ© dĂ©couverte, celle-ci a Ă©tĂ© « patchĂ© » Ă travers les diffĂ©rentes mises Ă jour de Windows. Cela dit, Microsoft ne s'est pas arrĂȘtĂ© lĂ et l'entreprise a dĂ©sactivĂ© la version 1 du protocole SMB par dĂ©faut dans toutes les versions Windows depuis Windows 10 (1709) et Windows Serveur (1709).
Service de partage SMBâ
Le service du serveur de fichiers de Windows se nomme Lanmanserver (Ou serveur, tel qu'affiché dans le gestionnaire de services).
Sous Linux, le protocole SMB faisant parti intégrante de Samba, vous devrez redémarrez les services associé à Samba, soit SMBD et NMBD.
Chemins UNC (Universal Naming Convention)â
Sous Windows, on utilisera un chemin UNC pour accéder à un partage SMB :
Faites bien attention de distinguer le nom d'un dossier et le nom du partage de celui-ci. Je peux trÚs bien posséder un dossier tel que C:\Users\Administrateur\Patate
et le partager sous le nom \\SERVEUR\travaux
. Le nom d'un item n'a pas forcémment de lien avec le nom de son partage.
Dans l'explorateur Windowsâ
En inscrivant seulement le nom du serveur au format UNC dans l'explorateur Windows, vous serez en mesure de consulter les partages disponibles. Notez cependant que les noms de partage se terminant par le caractÚre « $ » sont invisibles. Vous n'aurez d'autre choix que de connaßtre leur nom pour accéder à leur contenu.
Console de partages sous Windowsâ
Sous Windows, vous aurez accĂšs Ă la console des partages. Celle-ci est disponible dans la console de gestion de l'ordinateur ou entrant la commande fsmgmt.msc
directement dans l'invite de commande. Cette console vous permettra d'administrer vos partages, d'en changer les permissions, de les supprimer ou mĂȘme d'en crĂ©er de nouveau.
Dans l'image ci-dessus, vous pouvez voir certains partages créés par Windows lui-mĂȘme. Ce sont des partages administratifs. Ces partages permettent d'accĂ©der au systĂšme Ă travers le rĂ©seau, Ă condition d'y ĂȘtre autorisĂ©. Voici les partages administratifs que vous repĂ©rerez rĂ©guliĂšrement ainsi qu'une brĂšve description:
Partage | Description |
---|---|
C$ , D$ , etc. | Partages cachés des lecteurs locaux, accessibles uniquement aux administrateurs. |
ADMIN$ | Utilisé pour la gestion à distance de l'ordinateur via des outils comme la console MMC ou PowerShell. Il pointe vers le dossier C:\Windows . |
IPC$ | Permet la communication entre processus pour la gestion des connexions réseau et l'administration à distance. |
PRINT$ | Utilisé pour partager des fichiers liés aux pilotes d'imprimantes sur le réseau. |
Permissionsâ
Pour accĂ©der Ă un dossier partagĂ© Ă distance, un utilisateur devra y ĂȘtre autorisĂ© dans deux types de permissions distinctes:
- Les permissions du partage.
- Les permissions du systĂšme de fichier.
Prenons l'exemple de Bob:
Exemple 1: Bob tente d'accéder à un dossier à distance sans droit de partage ni permissions locales:


Exemple 2: Bob tente d'accéder à un dossier localement sans droit de partage ni permissions locales:


Exemple 3: Bob tente d'accéder à un dossier à distance sans droit de partage mais avec des permissions locales:


Exemple 4: Bob tente d'accéder à un dossier à localement sans droit de partage mais avec des permissions locales:


Exemple 5: Bob tente d'accéder à un dossier à distance avec des droits de partage mais sans permissions locales:


Exemple 6: Bob tente d'accéder à un dossier localement avec des droits de partage mais sans permissions locales:


Exemple 7: Bob tente d'accéder à un dossier à distance avec des droits de partage et des permissions locales:


Exemple 8: Bob tente d'accéder à un dossier localement avec des droits de partage et des permissions locales:


Conclusionâ
La seule façon d'accéder à un partage à distance est de posséder des permissions locales ET de posséder des permissions sur le partage. Si l'un ou l'autre des éléments est manquant, l'item ne sera pas accessible à distance.